package cn.iocoder.yudao.module.scrm.dal.mysql.operaterecord;

import java.util.*;

import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.module.scrm.dal.dataobject.operaterecord.OperateRecordDO;
import org.apache.ibatis.annotations.Mapper;
import cn.iocoder.yudao.module.scrm.controller.admin.operaterecord.vo.*;

/**
 * 操作记录 Mapper
 *
 * @author 黎志民
 */
@Mapper
public interface OperateRecordMapper extends BaseMapperX<OperateRecordDO> {

    default PageResult<OperateRecordDO> selectPage(OperateRecordPageReqVO reqVO) {
        return selectPage(reqVO, new LambdaQueryWrapperX<OperateRecordDO>()
                .eqIfPresent(OperateRecordDO::getTargetId, reqVO.getTargetId())
                .eqIfPresent(OperateRecordDO::getWay, reqVO.getWay())
                .eqIfPresent(OperateRecordDO::getType, reqVO.getType())
                .eqIfPresent(OperateRecordDO::getModifyContent, reqVO.getModifyContent())
                .eqIfPresent(OperateRecordDO::getAttribute, reqVO.getAttribute())
                .eqIfPresent(OperateRecordDO::getOldValue, reqVO.getOldValue())
                .eqIfPresent(OperateRecordDO::getNewValue, reqVO.getNewValue())
                .betweenIfPresent(OperateRecordDO::getFollowUpTime, reqVO.getFollowUpTime())
                .eqIfPresent(OperateRecordDO::getFollowUpContent, reqVO.getFollowUpContent())
                .likeIfPresent(OperateRecordDO::getSourceName, reqVO.getSourceName())
                .eqIfPresent(OperateRecordDO::getFileUrl, reqVO.getFileUrl())
                .betweenIfPresent(OperateRecordDO::getCreateTime, reqVO.getCreateTime())
                .orderByDesc(OperateRecordDO::getId));
    }

}